#ifndef _BINARY_HEAP_
#define _BINARY_HEAP_

#define ElementType int
#define NN 100

struct BinaryHeap;
typedef struct BinaryHeap* PriorityQueue;

void TestPriorityQueue();
PriorityQueue Initialize(int MaxElements);
void Destroy(PriorityQueue H);

void Insert(ElementType x, PriorityQueue H);
ElementType DeleteMin(PriorityQueue H);
ElementType FindMin(PriorityQueue H);

int IsEmpty(PriorityQueue H);
int IsFull(PriorityQueue H);

#endif